实现Callable接口,什么时候调用call()方法 | 您所在的位置:网站首页 › 主线程调用CALL 有延迟吗 › 实现Callable接口,什么时候调用call()方法 |
最近,项目中经常接触线程,特别是在推送MQ的时候,都是使用线程来执行操作。在这里,用一个简单的例子来整理一个很简单的使用方法。代码如下: public class TestThread { public static void main(String[] args) { //使用main方法模拟Callable的call()方法的调用 CallableTest callableTest = new CallableTest("我是阿T"); ExecutorService executorService = Executors.newCachedThreadPool(); System.out.println("开始执行call()方法!"); Future future = executorService.submit(callableTest); try { System.out.println("这里是为了测试一下程序的执行。"); System.out.println("调用call()方法返回的结果:"+future.get()); } catch (InterruptedException e) { e.printStackTrace(); } catch (ExecutionException e) { e.printStackTrace(); } } } class CallableTest implements Callable{ private String name; public CallableTest(String name){ this.name = name; } @Override public Object call() throws Exception { System.out.println("调用Callable的call()方法进行逻辑处理开始!"); return name;//call()方法执行完后返回的数据 } } 代码执行的结果: 开始执行call()方法! 这里是为了测试一下程序的执行。 调用Callable的call()方法进行逻辑处理开始! 调用call()方法返回的结果:我是阿T 从结果中可以看到,在线程去执行call()方法的时候,程序是继续往下走的,等到方法执行完毕之后,会返回name,而这个name在CallableTest实例化的时候,已经将“我是阿T”赋值给了name,所以,最后返回的结果是“我是阿T”。
|
CopyRight 2018-2019 实验室设备网 版权所有 |